package cn.sirun.com.fca.account.repo.bind;


import com.tencent.cloud.iov.kernel.constant.HttpHeaderConst;
import com.tencent.cloud.iov.kernel.model.BaseResponse;

import cn.sirun.com.fca.account.model.base.CarInfoDetailRequest;
import cn.sirun.com.fca.account.model.base.CarInfoDetailResponse;
import cn.sirun.com.fca.account.model.bind.PinSetFirstRequest;
import cn.sirun.com.fca.account.model.bind.PinSetFirstResponse;
import cn.sirun.com.fca.account.model.bind.PinSetParamResponse;
import cn.sirun.com.fca.account.model.bind.PinSetParamsRequest;
import cn.sirun.com.fca.account.model.bind.RecognizePicRequest;
import cn.sirun.com.fca.account.model.bind.RecognizePicResponse;
import cn.sirun.com.fca.account.model.bind.SubmitCarAuthenticationRequest;
import cn.sirun.com.fca.account.model.bind.SubmitCarAuthenticationResponse;
import cn.sirun.com.fca.account.model.bind.SubmitOwnerInfoRequest;
import cn.sirun.com.fca.account.model.bind.SubmitPersonalInfoRequest;
import cn.sirun.com.fca.account.model.bind.SubmitPersonalInfoResponse;
import cn.sirun.com.fca.account.model.bind.VerifyPinRequest;
import cn.sirun.com.fca.account.model.bind.VerifyPinResponse;
import io.reactivex.Observable;
import retrofit2.http.Body;
import retrofit2.http.Headers;
import retrofit2.http.POST;

/**
 * @author vinsonhuang
 * @date 2018/5/9
 */
public interface BindService {

    @Headers({HttpHeaderConst.ADD_COOKIE, HttpHeaderConst.CONTENT_TYPE_JSON})
    @POST("/v2/profile/bind/recognize_pic")
    Observable<BaseResponse<RecognizePicResponse>> recognizePic(@Body RecognizePicRequest request);

    @Headers({HttpHeaderConst.ADD_COOKIE, HttpHeaderConst.CONTENT_TYPE_JSON})
    @POST("/v2/profile/bind/submit_owner_info")
    Observable<BaseResponse<Void>> submitOwnerInfo(@Body SubmitOwnerInfoRequest request);


    @Headers({HttpHeaderConst.ADD_COOKIE, HttpHeaderConst.CONTENT_TYPE_JSON})
    @POST("/v2/iam_gateway/personal_profile/upload_personal_pic")
    Observable<BaseResponse<RecognizePicResponse>> submitOwnerImg(@Body SubmitOwnerInfoRequest request);


    @Headers({HttpHeaderConst.ADD_COOKIE, HttpHeaderConst.CONTENT_TYPE_JSON})
    @POST("/v2/iam_gateway/car_management/get_car_detail")
    Observable<BaseResponse<CarInfoDetailResponse>> getCarInfoDetail(@Body CarInfoDetailRequest request);

    @Headers({HttpHeaderConst.ADD_COOKIE, HttpHeaderConst.CONTENT_TYPE_JSON})
    @POST("/v2/iam_gateway/personal_profile/submit_personal_info")
    Observable<BaseResponse<SubmitPersonalInfoResponse>> submitPersonInfo(@Body SubmitPersonalInfoRequest request);

    @Headers({HttpHeaderConst.ADD_COOKIE, HttpHeaderConst.CONTENT_TYPE_JSON})
    @POST("/v2/iam_gateway/car_management/submit_car_authentication")
    Observable<BaseResponse<SubmitCarAuthenticationResponse>> submitCarAuthentication(@Body SubmitCarAuthenticationRequest request);


}